Geo-location services

ABSTRACT

A method for geo-location services is described. In one embodiment, the method includes monitoring, via a sensor, a location of a service provider in relation to a predetermined location and receiving a request for a current status of the service provider. The current status includes a current location of the service provider and a current job-related status of the service provider. Upon determining the current status of the service provider, a notification including the current status of the service provider is generated.

CROSS REFERENCES

The present Application claims priority to U.S. Provisional PatentApplication No. 61/847,426, titled: “SYSTEMS AND METHODS FORGEO-LOCATION SERVICES”, filed on Jul. 17, 2013.

BACKGROUND

Advancements in media delivery systems and media-related technologiescontinue to increase at a rapid pace. Increasing demand for media hasinfluenced the advances made to media-related technologies. Computersystems have increasingly become an integral part of the media-relatedtechnologies. Computer systems may be used to carry out severalmedia-related functions. The widespread access to media has beenaccelerated by the increased use of computer networks, including theInternet and cloud networking.

Many businesses use one or more computer networks to deliver mediabetween the various computers connected to the networks. Users ofcomputer technologies continue to demand increased access to media andan increase in the efficiency of these technologies. Improving theefficiency of computer technologies is desirable to those who use andrely on computers.

With the widespread use of computers and mobile devices has come anincreased presence of home automation and home security products.Advancements in mobile devices allow users to track a location of adevice and/or a person carrying the device. Such geo-locationinformation, however, is not always readily available. As a result,benefits may be realized by providing systems and methods forgeo-location services in relation to home automation systems.

SUMMARY

According to at least one embodiment, a method for geo-location servicesis described. In one embodiment, the method may include monitoring, viaa sensor, a location of a service provider in relation to apredetermined location and receiving a request for a current status ofthe service provider. The current status may include a current locationof the service provider and a current job-related status of the serviceprovider. The current job-related status may include at least one oftraveling to a job, on a job, on break, and off work. Upon determiningthe current status of the service provider, a notification including thecurrent status of the service provider may be generated.

In some embodiments, the method may include calculating an estimatedtime of arrival of the service provider to the predetermined locationbased on any combination of the current location of the service providerand the current job-related status of the service provider. In somecases, the method may include pausing a channel from subscriber programcontent and displaying the notification on at least a portion of thepaused channel.

In one embodiment, the method may include learning a route of theservice provider in relation to the predetermined location. Uponlearning the route of the service provider, an estimated time of arrivalof the service provider to the predetermined location may be calculatedbased on the current location of the service provider in relation to thelearned route. Upon determining the service provider is deviating fromthe learned route, a notification may be generated.

In one embodiment, the method may include determining a number ofremaining appointments of the service provider before an appointment tothe predetermined location. An estimated time of arrival of the serviceprovider to the predetermined location may be calculated based on thenumber of remaining appointments of the service provider.

A computing device configured for geo-location services is alsodescribed. The computing device may include a processor and memory inelectronic communication with the processor. The memory may storecomputer executable instructions that when executed by the processorcause the processor to perform the steps of monitoring, via a sensor, alocation of a service provider in relation to a predetermined location,receiving a request for a current status of the service provider, andupon determining the current status of the service provider, generatinga notification comprising the current status of the service provider.The current status may include a current location of the serviceprovider and a current job-related status of the service provider.

A non-transitory computer-readable storage medium storing computerexecutable instructions is also described. When the instructions areexecuted by a processor, the execution of the instructions may cause theprocessor to perform the steps of monitoring, via a sensor, a locationof a service provider in relation to a predetermined location, receivinga request for a current status of the service provider, and upondetermining the current status of the service provider, generating anotification comprising the current status of the service provider. Thecurrent status may include a current location of the service providerand a current job-related status of the service provider.

Features from any of the above-mentioned embodiments may be used incombination with one another in accordance with the general principlesdescribed herein. These and other embodiments, features, and advantageswill be more fully understood upon reading the following detaileddescription in conjunction with the accompanying drawings and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings illustrate a number of exemplary embodimentsand are a part of the specification. Together with the followingdescription, these drawings demonstrate and explain various principlesof the instant disclosure.

FIG. 1 is a block diagram illustrating one embodiment of an environmentin which the present systems and methods may be implemented;

FIG. 2 is a block diagram illustrating one example of a home automationmodule;

FIG. 3 is a block diagram illustrating one example of a monitoringmodule from the home automation module;

FIG. 4 is a flow diagram illustrating one embodiment of a method forgenerating notification when a particular user passes through apredetermined boundary;

FIG. 5 is a flow diagram illustrating one embodiment of a method forperforming an action upon identifying a learned behavior of the user;

FIG. 6 is a flow diagram illustrating one embodiment of a method forgenerating a notification upon detecting a user falling;

FIG. 7 is a flow diagram illustrating one embodiment of a method forgenerating a notification upon determining a user is near apredetermined location;

FIG. 8 is a flow diagram illustrating one embodiment of a method formonitoring a status of a service provider;

FIG. 9 is a flow diagram illustrating one embodiment of a method formonitoring a location of a user relative to a calendar appointment;

FIG. 10 is a flow diagram illustrating one embodiment of a method fortracking incidents occurring within a geographic area;

FIG. 11 is a flow diagram illustrating one embodiment of a method forproviding a temporary code that unlocks a door to emergency responsepersonnel upon identifying an emergency situation; and

FIG. 12 depicts a block diagram of a computer system suitable forimplementing the present systems and methods.

While the embodiments described herein are susceptible to variousmodifications and alternative forms, specific embodiments have beenshown by way of example in the drawings and will be described in detailherein. However, the exemplary embodiments described herein are notintended to be limited to the particular forms disclosed. Rather, theinstant disclosure covers all modifications, equivalents, andalternatives falling within the scope of the appended claims.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

The systems and methods described herein relate to home automation. Morespecifically, the systems and methods described herein relate togeo-location services in relation to a home automation system. Someembodiments of the systems and methods described herein relate togeo-location services in relation to an integration of home automationand a subscriber-based media content set top box, such as a satelliteand/or cable digital video recorder (DVR).

In one example, a user may desire to receive an alert when another userleaves a certain area. For instance, the parent of a child may want toknow when the child is outside the home. Presently, the parent may placea tracking device on the child. The parent, however, may have toactively check a monitoring device to know whether the child haswandered outside of the home. The present systems and methods providethe means for tracking a certain user, detecting when the certain userpasses through a predetermined perimeter, and providing notificationmessages upon detecting the user passing through the predeterminedperimeter. Moreover, the systems and methods described herein mayprovide geo-location services and notifications in relation to a homeautomation system. Furthermore, the systems and methods described hereinmay provide geo-location services and notifications in relation to achannel of a subscriber-based media content set top box.

FIG. 1 is a block diagram illustrating one embodiment of an environment100 in which the present systems and methods may be implemented. In someembodiments, the systems and methods described herein may be performedon a device (e.g., device 105). The environment 100 may include a device105, service provider device 110, a sensor 125, a display 130, a mobilecomputing device 150, a home automation controller 155, and a network115 that allows the device 105, the service provider device 110, themobile computing device 150, home automation controller 155, and sensor125 to communicate with one another. Examples of the device 105 includemedia content set top box, satellite set top box, cable set top box,DVRs, personal video recorders (PVRs), mobile devices, smart phones,personal computing devices, computers, servers, etc. Examples of thehome automation controller 155 include a dedicated home automationcomputing device (e.g., wall-mounted controller), a personal computingdevice (e.g., laptop, desktop, etc.), a mobile computing device (e.g.,tablet computing device, smartphone, etc.), and the like. Examples ofsensor 125 include a camera sensor, audio sensor, three-dimensional(3-D) sensor, motion sensor, smoke sensor, glass break sensor, doorsensor, window sensor, carbon monoxide sensor, accelerometer a locationsensor (e.g., global positioning system (GPS) sensor, Wi-Fi positioningsystem sensor, etc.), capacitance sensor, radio frequency sensor,near-field sensor, temperature sensor, heartbeat sensor, breathingsensor, oxygen sensor, carbon dioxide sensor, brain wave sensor,movement sensor, voice sensor, and the like. Sensor 125 may representone or more of the sensors listed or a combination thereof. For example,sensor 125 may represent one or more camera sensors and one or moremotion sensors connected to the environment 100. Additionally, oralternatively, sensor 125 may represent a combination sensor such asboth a camera sensor and a motion sensor integrated in the same device.Sensor 125 may be integrated with a facial recognition system. Althoughsensor 125 is depicted as connecting to device 105 over network 115, insome embodiments, sensor 125 may connect directly to device 105.Additionally, or alternatively, sensor 125 may be integrated with a homeappliance or fixture such as a light bulb fixture.

In some configurations, the device 105 may include a user interface 135,application 140, and home automation module 145. Although the componentsof the device 105 are depicted as being internal to the device 105, itis understood that one or more of the components may be external to thedevice 105 and connect to device 105 through wired and/or wirelessconnections. In some embodiments, application 140 may be installed onmobile computing device 150 in order to allow a user to interface with afunction of device 105, home automation module 145, home automationcontroller 155, and/or service provider device 110.

In some embodiments, device 105 may communicate with service providerdevice 110 via network 115. Example of networks 115 include cloudnetworks, local area networks (LAN), wide area networks (WAN), virtualprivate networks (VPN), wireless networks (using 802.11, for example),cellular networks (using 3G and/or LTE, for example), etc. In someconfigurations, the network 115 may include the internet. It is notedthat in some embodiments, the device 105 may not include a homeautomation module 145. For example, the device 105 may include theapplication 140 that allows the device 105 to interface with the homeautomation controller 155 via the home automation module 145 located onanother device such as mobile computing device 150 and/or serviceprovider device 110. In some embodiments, device 105, home automationcontroller 155, and service provider device 110 may include a homeautomation module 145 where at least a portion of the functions of homeautomation module 145 are performed separately and/or concurrently ondevice 105, home automation controller 155, and/or service providerdevice 110. Likewise, in some embodiments, a user may access thefunctions of device 105 and/or home automation controller 155 (directlyor through device 105 via home automation module 145) from mobilecomputing device 150. For example, in some embodiments, mobile computingdevice 150 includes a mobile application that interfaces with one ormore functions of device 105, home automation controller 155, homeautomation module 145, and/or service provider device 110.

In some embodiments, service provider device 110 may be coupled todatabase 120. Database 120 may include program content 160, designatedareas 165, and learned behaviors 170. For example, device 105 may accessprogram content 160 in database 120 over network 115 via serviceprovider device 110. Database 120 may be internal or external to theservice provider device 110. In one example, device 105 may be coupleddirectly to database 120, database 120 being internal or external todevice 105.

Home automation module 145 may allow a user to control (either directlyor via home automation controller 155), from a subscription-contentmedia set top box, an aspect of the home of the user, includingsecurity, locking or unlocking a door, checking the status of a door,locating a person or item, controlling lighting, thermostat, cameras,and the like. In some configurations, application 140 may enable device105 to interface with home automation controller 155 via home automationmodule 145 to provide home automation content to device 105 and/ormobile computing device 150. Thus, application 140, via the homeautomation module 145, may allow users to control aspects of their home.Further details regarding the home automation module 145 are discussedbelow.

FIG. 2 is a block diagram illustrating one example of a home automationmodule 145-a. Home automation module 145-a may be one example of homeautomation module 145 depicted in FIG. 1. As depicted, home automationmodule 145-a may include monitoring module 205, comparison module 210,notification module 215, pattern detection module 220, a useridentification module 225, and a media module 230.

In some embodiments, service provider device 110 may provide subscriberprogram content (cable/satellite television programming, for example) toa user via a set top box located in a home, office, etc. of the user.Examples of set top boxes include cable set top boxes, satellite set topboxes, DVRs, PVRs, and the like. Monitoring module 205 may be configuredto monitor a location of a user, object, etc. In some embodiments,monitoring module 205 may monitor a status of an object, such as asecurity camera, a door lock, a door status, a smoke alarm (or othertype of sensor), a home appliance, utility equipment, energy/utilityusage, and the like. Home appliances may include a refrigerator, oven,microwave oven, stove, dishwasher, washer, dryer, and the like. Utilityequipment may include a garage door opening system, heating ventilationair conditioning (HVAC) equipment, culinary water equipment (waterheater, water softener, water meter, fire alarm, in-home sprinklersystem, etc.), telephony equipment, irrigation water equipment (lawnsprinkler system, etc.), natural gas system (carbon monoxide sensor, gasmeter, gas detection system, etc.), and the like. Monitoring module 205may be configured to detect a predetermined change related to an objector the triggering of a predetermined threshold related to the object(carbon monoxide levels exceed a certain level, for example). In oneembodiment, monitoring module 205 monitors a location of a user orobject in relation to a predetermined condition. The predeterminedcondition may include a user and/or object entering or leaving apredetermined boundary, such as, entering and/or leaving a room of ahome or any sort of building. The predetermined condition may furtherinclude detecting a user performing an action and/or a sequence ofactions, detecting a routine that a user performs, detecting a userfalling, detecting a user approaching or being at a predeterminedlocation, detecting when a user deviates from a route the user routinelytakes, tracking a location and/or status of a service provider scheduledto arrive at a user's home or office, tracking a user's location inrelation to a calendar appointment, tracking one or more conditionsassociated with a route a user may take to an appointment, trackingcertain incidents and related information (e.g., theft, burglary, typeof items taken, day of the week incident occurred, time of day, etc.)within a geographic region in relation to a subscription service andproviding the statistics of tracked incidents to subscribers locatedwithin the geographic area. The predetermined condition may furtherinclude providing temporary codes to emergency response personnelresponding to an emergency situation (e.g., a user has fallen and isunable to unlock a door).

In one embodiment, notification module 215 may generate a notificationin response to detecting one of the predetermined conditions listedabove. In some embodiments, notification module 215, in conjunction withthe user interface 135, may display a notification on a displayconnected to a set top box. Notification module 215 may display thenotification in relation to a presently viewed channel of the subscriberprogram content. In some cases, notification module 215 may display thenotification in at least a portion of a viewing area of the channel. Forexample, a user watching content from a satellite DVR on a televisionmay receive a notification displayed on at least a portion of the screenof the television. For example, a notification relating to a childleaving a house located in a certain community may be generated and sentto each user within the community that subscribes to set-top boxservice. The notification may be displayed on each television attachedto the set-top box in the community that subscribes to the service.

In some embodiments, notification module 215 may adapt a notificationbased on certain conditions. Notification module 215 may determinewhether to display a notification on a display based on notificationrules associated with a current state of device 105. For example,notification 215 may determine whether to display the notification basedon the content provided by a set top box that a user is currentlyviewing. For instance, if a user is watching a sports (e.g., boxingmatch, World Series, Superbowl, etc.) notification 215 may block thedisplay from being displayed or route the notification to anotherdevice, such as an email or a text message sent to a smartphone ortablet device. In some cases, notification module 215 may alter thenotification based on the current state of the device 105. For one typeof programming and set top box content, notification module 215 may showscrolling text across an edge of the television screen. For another typeof programming, notification module 215 may play a sound (e.g., a tone,a combination of tones, a recorded voice notification, a text to speechnotification, and the like) based on the type of notification. In someembodiments, notification module 215 may alter the destination of thenotification based on the type of notification and/or the type ofprogramming currently being viewed by the user. For example, if thenotification rules require minimum notification for a certain type ofprogramming, the notification module 215 may display in alternativemodes of communication. For instance, notification module 215 may emailor text message a notification to a user based on the type ofnotification, the type of programming the user is currently watching,whether programming is currently being watched, and/or the currentlocation of the user, etc.

In some cases, notification 215 may determine whether to display anotification in relation to programming currently being watched by theuser and how to handle the programming based on the type of notificationand/or the type of programming. For example, home automation module145-a may pause the programming for one type of notification, show a popup message for another type of notification without pausing theprogramming, split the screen between a window for a security cameraview and a window for the programming for another type of notification,and so forth. Additionally, or alternatively, notification module 215may pause the programming for one type of notification based on one typeof programming, block the notification for the same type of notificationbased on another type of programming, and continue showing theprogramming for the same type of notification based on a third type ofprogramming.

In some embodiments, upon detecting a predetermined change related to alocation of a user or a status of an object, media module 230 may pausesubscriber program content currently provided on a channel. For example,the home automation module 145-a may pause and/or record a portion ofthe content the user was viewing when the notification is displayed. Insome cases, the notification may include a picture in picturenotification, a text bar, scrolling text, a pop up, or drop downnotification message. In some cases, the presently viewed channel may bepaused upon the notification module 215 displaying the notification.

In one embodiment, the monitoring module 205 may monitor a location of auser within a home or building, a user outside a home or office, or thelocation of a service provider. In some embodiments, pattern detectionmodule 220 may be configured to learn and subsequently identify apattern associated with the monitored action of the user. Comparisonmodule 210 may compare an initiated pattern of the user to a learnedpattern of the user. Upon determining a match, comparison module 210 maytrigger pattern detection module 220 to perform an operation.

The pattern detection module 220 may identify a pattern associated witha particular user in conjunction with user identification module 225. Insome embodiments, user identification module 225 may identify a user viasensor 125. For example, user identification module 225 may identify auser using facial recognition, identify a device associated with theuser, identify an identification code that is transmitted from a deviceassociated with the user, identify a movement signature of the user,identify a voice of the user, and the like.

In some embodiments, pattern detection module 220 may detect aninitiation of the identified pattern associated with the monitoredaction and location of the user. Upon detecting the initiation of theidentified pattern, home automation module 145-a may perform an actionor a sequence of actions. For example, pattern detection module 220 maydetect that a certain user dims the lights to a certain level, watches acertain program at certain times each week, and routinely turns off thedishwasher when it is running during the certain times. Upon recognizingan initiation of the learned pattern based on the user's location at acertain time of day, home automation module 145 may automatically turnon the television, tune a satellite and/or cable set top box to aparticular channel, dim the lights to a predetermined level, and pausethe dishwasher cycle, if home automation module 145-a detects thedishwasher is currently running. Upon detecting the end period of thesatellite content, home automation module 145-a may resume thedishwasher cycle, increase the brightness of the lights, etc.

In one embodiment, media module 230 may provide subscriber programcontent to a user via a set top box located in a home of the user.Monitoring module 205 may monitor an aspect of the home of the user.Media module 230, in conjunction with the user interface 135, mayprovide a monitor channel to display the monitored aspect of the home tothe user. The monitor channel may be displayed in a channel guide amongchannels of the subscriber program content. For example, a subscriptionto cable or satellite media content may include a channel guide thatincludes a list of selectable channels and their respective content.Among the list of channels provided by subscription, home automationmodule 145-a may append one or more home automation channels that areselectable and interact with user commands in a similar manner as thesubscription channels in the channel guide.

Media module 230 may provide a tracking channel, similar to the monitorchannel described above, to display a map of tracked users and/orobjects among channels of the subscriber program content. In someembodiments, home automation module 145-a may provide a home automationpreview channel. The home automation preview channel may provide areal-time preview of two or more home automation channels. In someembodiments, home automation module 145-a may split the screen to showthe current content provided by a media provider and a location of auser being tracked. Alternatively, home automation module 145-a maydisplay the location of the user being tracked in a picture in pictureelement over the current channel.

FIG. 3 is a block diagram illustrating one example of a monitoringmodule from the home automation module 205-a. Monitoring module 205-amay be one example of monitoring module 205 depicted in FIG. 2. Asdepicted, monitoring module 205-a may include location module 305,incident tracking module 310, public warning module 315, status module320, and route tracking module 325.

In one embodiment, location module 305 may track the location of anentity (e.g., family members, pets, and objects) in certain locationssuch as at home or at the office, and generally in any area. In onecase, when a tracked entity passes through or breaches a predeterminedboundary, a notification may be generated. A warning message may beprovided to a contact on a contact list. The contact list may includefamily members, neighbors, as well as law enforcement and emergencyresponse personnel. In one embodiment, notification module 215 maygenerate a community notification message and send an alert to contactson a community contact list. In some cases, the community contact listmay include users that have a similar system and subscribe to a similarservice within a certain community area. Contacts on the communitycontact list may also include email, text messaging, and telephonenumber contacts of people within the community area.

In one embodiment, location module 305 may track the location of a userand/or object. The system may monitor the behavior of a user in acertain location. In some cases, monitoring module 205-a, in conjunctionwith user identification module 225, may identify a motion signature ofa user detected through video sensors and/or sensors on the person(e.g., accelerometer), the motion signature including a certain motionor sequence of motions that uniquely identifies the user. Thus,monitoring module 205-a may identify the user based on the detectedmotion of the user. Additionally, or alternatively, monitoring module205-a may identify the user using a facial recognition algorithm. In oneembodiment, pattern detection module 220 may learn a behavior of theuser based on detecting the identity of the user and monitoring theactions of the user. Pattern detection module 220 may track when theactions are performed, where the actions are performed, and a pattern ofrelated actions the user performs, etc. Monitoring module 205-a maydetect the difference between a user “leaving” and “entering” a room,and respond accordingly. Home automation module 145 may anticipate theactions of the user by comparing a learned behavior/pattern of the userto a currently detected action or sequence of actions of the user. Forexample, monitoring module 205-a may monitor the location, identity, andcurrent actions of a user. Comparison module 210 may compare the currentactions of the identified user to a database of learned behaviors (e.g.,learned behaviors 170). Upon detecting a match, home automation module145 may perform an operation (e.g., execute a command, activate adevice) in response to a match between the detected action of the userand a learned behavior of the user. For example, the system may turn ona light, turn off a light, adjust a thermostat, turn on/off televisionprogramming or otherwise adjust the television programming (e.g., pause,rewind, fast forward, stop, record, play, switch to another channel,switch from one form of media to a different form of media, etc.).

In some embodiments, monitoring module 205-a may monitor a sensor on aperson (e.g., sensor 125). Monitoring module 205-a, via the sensor, maydetect when a user falls. Additionally, monitoring module 205-a maymonitor a sensor that tracks a current condition of the user, includingtemperature (body temperature), heartbeat, breathing, brain waves,movement, voice, sound, etc. Thus, monitoring module 205-a maydifferentiate between a person falling while wearing the sensor andfalse alarms such as where a person merely drops the sensor oractivities such as a user playing a sport or exercising. Notificationmodule 215 may generate a notification in response to the detection ofthe fall. In some cases, a notification may be sent through homeautomation controller 155. Upon being alerted, a receiver of thenotification may attempt to contact the user to verify that the user didfall, whether the user is able to get up, whether the person is alone atthe location, and whether the person is conscious. In some cases,notification module 215 may send a notification to emergency responsepersonnel. Additionally, or alternatively, notification module 215 maysend a notification to one or more persons on a contact list. In oneembodiment, location module 305 may determine the location of one ormore users on the contact list and contact a user that is currentlyclosest to the fallen person's location. In some cases, notificationmodule 215 may contact a person on the contact list based on the defaultlocation of persons on the contact list. In some embodiments, thenotification may include a summary of what happened (e.g., person hasfallen, is injured, etc.), a current status of the fallen person, thatemergency response personnel have been contacted and/or their currentstatus and estimated time of arrival (ETA), vital signs of the injuredperson, whether they are stable, conscious, etc. In some cases,monitoring module 205-a may provide this information to a monitoringservice and the monitoring service may contact a person on the contactlist and relay this information over the phone, email, SMS, etc. In oneembodiment, the fallen person's symptoms may be tracked by themonitoring module 205-a in conjunction with one or more sensors.Monitoring module 205-a may communicate the symptoms to emergencyresponse personnel currently in route to the fallen person's location,providing diagnostic information before the emergency response personnelarrive at the location, resulting in saved time for the emergencyresponse personnel, the saved time being used in treating the fallenperson instead of diagnosing injuries.

In some embodiments, a door lock may be linked to the system. The doorlock may include a keypad, wireless transceiver, and/or a camera. In oneexample, monitoring module 205-a may recognize a user using a camera andperforming a facial recognition algorithm. Upon recognizing the user,the home automation module 145 may unlock the door. Monitoring module205-a may detect a signal from a mobile computing system carried by auser (e.g., smartphone, etc.) and in response to receiving and verifyingan unlocking code in the received signal, home automation module 145 mayunlock the door. In some cases, monitoring module 205-a may receive aninput from the user (e.g., biometric scan, code entered in a keypad,etc.) and unlock the door in response to a verified input. In somecases, when emergency response personnel respond to emergencies at homesand locations where no one is available to unlock a door, the emergencyresponse personnel have little choice but to break in the door,resulting in potentially thousands of dollars of damage. To remedy thiscostly situation, notification module 215 may send a temporary code toemergency response personnel when responding to a detected emergency.For example, upon detecting a fall of a person that is home alone and isinjured or unable to get up, notification module 215 may provide atemporary code to the emergency response personnel to allow them to opena locked door. The code may be manually entered on a door lock thatincludes a keypad (e.g., front door or garage door with a keypad).Additionally, or alternatively, the code may be a digital code receivedwirelessly. The code may be encrypted and received in an applicationinstalled on a mobile device in the possession of emergency responsepersonnel. The code may then be relayed to the door lock wirelessly viathe mobile device (e.g., code wirelessly transmitted via a mobilecomputing device). The code may unlock a house door and/or a garagedoor. In some cases, the system may track the location of emergencyresponse personnel. In one embodiment, monitoring module 205-a maymonitor the location of emergency response personnel. Upon detecting theemergency response personnel arriving at the location of the fallenperson, the home automation module 145 may unlock the locked door and/oropen a garage door, etc.

In one embodiment, incident tracking module 310 may track communityincidents (theft, burglary, vandalism, etc.). Incident tracking module310 may track incidents in association with a subscription service.Incident tracking module 310 may track incidents within the communityand provide information related to the tracked incidents to subscribersof the subscription service that are located in the community in whichthe incidents occurred. Incident tracking module 310 may mask theidentity of persons and/or locations associated with the incidents.Thus, incident tracking module 310 may provide information such as typeof items stolen, point of entry, time of entry, day of the week incidentoccurred, etc. In some cases, media module 330 may provide incidentreports on a dedicated channel of a channel guide among channels ofsubscriber program content.

In one embodiment, when a user approaches or is located in an area thatis designated as a dangerous area (e.g., designated areas 165),notification module 215 may send an alert to the tracked user and/or oneor more other users. The designated area may be manually configured toinclude those areas known or suspected to be dangerous (e.g., abandonedbuilding, construction site, busy streets, etc.). Additionally, oralternatively, public warning module 315 may track locations oftemporary dangerous conditions (e.g., severe weather such as tornadosand earthquakes, escaped inmates, manhunts, etc.). In some cases,notification module 215 may switch a current channel being watched by afamily member at home to a dedicated map/tracking channel, indicatingthe tracked user's current location. In some cases, a notificationmessage may be displayed on the television screen. The system may sendan alert to the user traveling towards a detected or designateddangerous area. The system may also provide an alert to a family memberby switching a channel to a dedicated tracking channel and/or by sendingan email, text message, voicemail, etc. In some embodiments, patterndetection module 220 may learn travel routines (e.g., route taken toschool by child, route taken to work, to grocery store, etc.).Notification module 215 may generate a notification when it detects adeviation from a learned route. For example, when a child deviates froma route the child usually taken to school, notification module 215 maygenerate an alert and provide the alert to a parent, etc.

In some embodiments, a service provider may be tracked involving adelivery (e.g., USPS, UPS, FedEx, etc.), a media provider (e.g.,satellite, cable, telephone), service repair technician, nursing staff,ambulance, police, and the like. Additionally, or alternatively,monitoring module 205-a may track a garbage collector, snow removalvehicles, etc. The tracking feature may be enabled manually (e.g., byinvitation through text message, etc.) and/or enabled by company policy(e.g., tracking device located on company vehicle, tracking location ofemployee during business hours, etc.). Monitoring module 205-a mayimplement privacy controls that include non-specific locationinformation, temporary tracking, tracking expiration, scheduled trackingbased on business hours, and the like. For example, monitoring module205-a may track only a certain degree of granularity, such as the nameof a street or city where the service provider is currently located. Insome embodiments, status module 320 may track a current status of theservice provider (e.g., on the road, on a job, on break, at lunch, offwork, etc.) and remaining appointments of the service provider.Notification module 215 may filter the information received frommonitoring module 205-a and provide the filtered information to acustomer waiting for the service provider to arrive. For example,monitoring module 205-a may determine the location of the serviceprovider, that the status of the service provider is at lunch, and thatthe service provider has one appointment before the user's appointment.Home automation module 145 may calculate an estimated time of arrivalbased on the location, status, and remaining appointments. Notificationmodule 215 may provide the estimated time of arrival to the user and/orinformation related to the location, status, and remaining appointmentsof the service provider.

In one embodiment, location module 305 may track locations of attendeesof an appointment. In some cases, attendees may receive an invitation toaccept temporary/limited tracking in relation to the appointment. Insome cases, a company may enable a tracking policy to enable at least alimited form of tracking of employees during business hours. Monitoringmodule 205-a may send an attendee a message with a request to respondwith the attendee's current location in order to provide notification toother attendees whether the tracked attendee is likely to make theappointment on time and/or to provide an ETA for the tracked attendee tothe other attendees. For example, one attendee may be stuck in anairport in a different city. The system may determine that a flight fromthis user's current location will take longer than the time left beforethe meeting starts. Accordingly, the system may provide notification tothe other attendees that the tracked user will likely be unable toattend the meeting on time. In some cases, in order to protect privacy,the system may not provide the location of the tracked entity, butinstead, may simply provide information based on the tracked location.For example, monitoring module 205-a may receive the location of theuser, but instead of providing the location of the tracked user,monitoring module 205-a may simply provide notification that the trackeduser is 10 minutes away. In some cases, a device on the user mayestimate how far the user is and send this information (e.g., user is 10minutes away, user is 10 miles from location, etc.).

Based on the user's current location home automation module 145 maydetermine a suggested route (e.g., fastest or shortest route) to auser's appointment. In some cases, route tracking module 325 may trackconditions related to the suggested route. For example, route trackingmodule 325 may track conditions related to the suggested route (e.g.,weather conditions, flight delays, traffic accidents, road closures,etc.). In one example, the user may be watching television programming.Upon detecting a change in conditions related to the suggested route,notification module 215 may generate a notification. In one case,notification module 215 may display a message on the television screen,send a text message, send an email, etc. Home automation module 145 mayswitch to an appointments channel and provide estimated travel timebased on the detected changes to the suggested route. For example, ifroute tracking module 325 detects a traffic accident along the route toan appointment, notification module 215 may alert the user that theestimated travel time has increased and may provide an updated suggesteddeparture time and/or an updated route.

FIG. 4 is a flow diagram illustrating one embodiment of a method 400 forgenerating notification when a particular user passes through apredetermined boundary. In some configurations, the method 400 may beimplemented by the home automation module 145 illustrated in FIG. 1 or2. In some configurations, the method 400 may be implemented inconjunction with the application 140 and/or the user interface 135illustrated in FIG. 1.

At block 405, a location of a user may be monitored in relation to apredetermined boundary. At block 410, upon determining the user ispassing through the predetermined boundary, a notification may begenerated. At block 415, it may be determined which contact on a contactlist is nearest to a location near the predetermined boundary. At block420, a notification may be sent to the contact determined to be nearestto the location within the predetermined boundary.

FIG. 5 is a flow diagram illustrating one embodiment of a method 500 forperforming an action upon identifying a learned behavior of the user. Insome configurations, the method 500 may be implemented by the homeautomation module 145 illustrated in FIG. 1 or 2. In someconfigurations, the method 800 may be implemented in conjunction withthe application 140 and/or the user interface 135 illustrated in FIG. 1.

At block 505, a user may be identified via a sensor. At block 510,actions of the user may be monitored at a predetermined location. Atblock 515, a behavior of the user may be learned via the monitoring ofthe actions of the user at the predetermined location. At block 520,upon identifying the learned behavior, a command to perform an action inrelation to an object at the predetermined location may be generated.

FIG. 6 is a flow diagram illustrating one embodiment of a method 600 forgenerating a notification upon detecting a user falling. In someconfigurations, the method 600 may be implemented by the home automationmodule 145 illustrated in FIG. 1 or 2. In some configurations, themethod 600 may be implemented in conjunction with the application 140and/or the user interface 135 illustrated in FIG. 1.

At block 605, a user may be monitored at a predetermined location. Atblock 610, the user falling may be detected. At block 615, upondetecting the user falling, it may be determined which contact on acontact list is nearest to the predetermined location. At block 620, anotification may be sent to the contact determined to be nearest to thepredetermined location.

FIG. 7 is a flow diagram illustrating one embodiment of a method 700 forgenerating a notification upon determining a user is near apredetermined location. In some configurations, the method 700 may beimplemented by the home automation module 145 illustrated in FIG. 1 or2. In some configurations, the method 700 may be implemented inconjunction with the application 140 and/or the user interface 135illustrated in FIG. 1.

At block 705, one or more predetermined locations may be stored in adatabase. At block 710, a location of a user may be monitored inrelation to the one or more predetermined locations. At block 715, upondetermining the user is within a predetermined distance of the one ormore predetermined locations, a notification may be generated. At block720, the notification may be sent to a contact on a contact list.

FIG. 8 is a flow diagram illustrating one embodiment of a method 800 formonitoring a status of a service provider. In some configurations, themethod 800 may be implemented by the home automation module 145illustrated in FIG. 1 or 2. In some configurations, the method 800 maybe implemented in conjunction with the application 140 and/or the userinterface 135 illustrated in FIG. 1.

At block 805, a location of a service provider may be monitored inrelation to a predetermined location. At block 810, a request for acurrent status of the service provider may be received. The currentstatus may include a current location and current job-related status ofthe user. At block 815, upon determining the current status of theservice provider, a notification including the current status of theservice provider may be generated.

FIG. 9 is a flow diagram illustrating one embodiment of a method 900 formonitoring a location of a user relative to a calendar appointment. Insome configurations, the method 900 may be implemented by the homeautomation module 145 illustrated in FIG. 1 or 2. In someconfigurations, the method 900 may be implemented in conjunction withthe application 140 and/or the user interface 135 illustrated in FIG. 1.

At block 905, a calendar appointment may be scheduled. A user may be oneof a plurality of attendees of the calendar appointment. At block 910, alocation of the user may be monitored in relation to a time and locationassociated with the calendar appointment.

FIG. 10 is a flow diagram illustrating one embodiment of a method 1000for tracking incidents occurring within a geographic area. In someconfigurations, the method 1000 may be implemented by the homeautomation module 145 illustrated in FIG. 1 or 2. In someconfigurations, the method 1000 may be implemented in conjunction withthe application 140 and/or the user interface 135 illustrated in FIG. 1.

At block 1005, incidents that occur within a predetermined geographicarea may be tracked in relation to a subscription service. At block1010, upon receiving a request for a list of incidents in relation tothe predetermined geographic area, a notification including therequested list of incidents may be generated. At block 1015, thenotification may be sent to one or more subscribers within thepredetermined geographic area.

FIG. 11 is a flow diagram illustrating one embodiment of a method 1100for providing a temporary code that unlocks a door to emergency responsepersonnel upon identifying an emergency situation. In someconfigurations, the method 1100 may be implemented by the homeautomation module 145 illustrated in FIG. 1 or 2. In someconfigurations, the method 1100 may be implemented in conjunction withthe application 140 and/or the user interface 135 illustrated in FIG. 1.

At block 1105, an emergency situation may be identified in relation to auser at a location. At block 1110, upon identifying the emergencysituation, a notification message may be sent to emergency responsepersonnel. The notification message may include a temporary code toallow the emergency response personnel to unlock a door lock at thelocation within a predetermined time period.

FIG. 12 depicts a block diagram of a controller 1200 suitable forimplementing the present systems and methods. The controller 1200 may bean example of the set top box device 105, mobile computing device 150,and/or home automation controller 155 illustrated in FIG. 1. In oneconfiguration, controller 1200 includes a bus 1205 which interconnectsmajor subsystems of controller 1200, such as a central processor 1210, asystem memory 1215 (typically RAM, but which may also include ROM, flashRAM, or the like), an input/output controller 1220, an external audiodevice, such as a speaker system 1225 via an audio output interface1230, an external device, such as a display screen 1235 via displayadapter 1240, an input device 1245 (e.g., remote control deviceinterfaced with an input controller 1250), one or more USB devices 1265(interfaced with a USB controller 1270), and a storage interface 1280.Also included are at least one sensor 1255 connected to bus 1205 througha sensor controller 1260 and a network interface 1285 (coupled directlyto bus 1205).

Bus 1205 allows data communication between central processor 1210 andsystem memory 1215, which may include read-only memory (ROM) or flashmemory (neither shown), and random access memory (RAM) (not shown), aspreviously noted. The RAM is generally the main memory into which theoperating system and application programs are loaded. The ROM or flashmemory can contain, among other code, the Basic Input-Output system(BIOS) which controls basic hardware operation such as the interactionwith peripheral components or devices. For example, the home automationmodule 145-b to implement the present systems and methods may be storedwithin the system memory 1215. Applications (e.g., application 140)resident with controller 1200 are generally stored on and accessed via anon-transitory computer readable medium, such as a hard disk drive(e.g., fixed disk 1275) or other storage medium. Additionally,applications can be in the form of electronic signals modulated inaccordance with the application and data communication technology whenaccessed via interface 1285.

Storage interface 1280, as with the other storage interfaces ofcontroller 1200, can connect to a standard computer readable medium forstorage and/or retrieval of information, such as a fixed disk drive1275. Fixed disk drive 1275 may be a part of controller 1200 or may beseparate and accessed through other interface systems. Network interface1285 may provide a direct connection to a remote server via a directnetwork link to the Internet via a POP (point of presence). Networkinterface 1285 may provide such connection using wireless techniques,including digital cellular telephone connection, Cellular Digital PacketData (CDPD) connection, digital satellite data connection, or the like.In some embodiments, one or more sensors (e.g., motion sensor, smokesensor, glass break sensor, door sensor, window sensor, carbon monoxidesensor, and the like) connect to controller 1200 wirelessly via networkinterface 1285.

Many other devices or subsystems (not shown) may be connected in asimilar manner (e.g., entertainment system, computing device, remotecameras, wireless key fob, wall mounted user interface device, cellradio module, battery, alarm siren, door lock, lighting system,thermostat, home appliance monitor, utility equipment monitor, and soon). Conversely, all of the devices shown in FIG. 12 need not be presentto practice the present systems and methods. The devices and subsystemscan be interconnected in different ways from that shown in FIG. 12. Theaspect of some operations of a system such as that shown in FIG. 12 arereadily known in the art and are not discussed in detail in thisapplication. Code to implement the present disclosure can be stored in anon-transitory computer-readable medium such as one or more of systemmemory 1215 or fixed disk 1275. The operating system provided oncontroller 1200 may be iOS®, ANDROID®, MS-DOS®, MS-WINDOWS®, OS/2®,UNIX®, LINUX®, or another known operating system.

Moreover, regarding the signals described herein, those skilled in theart will recognize that a signal can be directly transmitted from afirst block to a second block, or a signal can be modified (e.g.,amplified, attenuated, delayed, latched, buffered, inverted, filtered,or otherwise modified) between the blocks. Although the signals of theabove described embodiment are characterized as transmitted from oneblock to the next, other embodiments of the present systems and methodsmay include modified signals in place of such directly transmittedsignals as long as the informational and/or functional aspect of thesignal is transmitted between blocks. To some extent, a signal input ata second block can be conceptualized as a second signal derived from afirst signal output from a first block due to physical limitations ofthe circuitry involved (e.g., there will inevitably be some attenuationand delay). Therefore, as used herein, a second signal derived from afirst signal includes the first signal or any modifications to the firstsignal, whether due to circuit limitations or due to passage throughother circuit elements which do not change the informational and/orfinal functional aspect of the first signal.

While the foregoing disclosure sets forth various embodiments usingspecific block diagrams, flowcharts, and examples, each block diagramcomponent, flowchart step, operation, and/or component described and/orillustrated herein may be implemented, individually and/or collectively,using a wide range of hardware, software, or firmware (or anycombination thereof) configurations. In addition, any disclosure ofcomponents contained within other components should be consideredexemplary in nature since many other architectures can be implemented toachieve the same functionality.

The process parameters and sequence of steps described and/orillustrated herein are given by way of example only and can be varied asdesired. For example, while the steps illustrated and/or describedherein may be shown or discussed in a particular order, these steps donot necessarily need to be performed in the order illustrated ordiscussed. The various exemplary methods described and/or illustratedherein may also omit one or more of the steps described or illustratedherein or include additional steps in addition to those disclosed.

Furthermore, while various embodiments have been described and/orillustrated herein in the context of fully functional computing systems,one or more of these exemplary embodiments may be distributed as aprogram product in a variety of forms, regardless of the particular typeof computer-readable media used to actually carry out the distribution.The embodiments disclosed herein may also be implemented using softwaremodules that perform certain tasks. These software modules may includescript, batch, or other executable files that may be stored on acomputer-readable storage medium or in a computing system. In someembodiments, these software modules may configure a computing system toperform one or more of the exemplary embodiments disclosed herein.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order best to explain theprinciples of the present systems and methods and their practicalapplications, thereby to enable others skilled in the art to bestutilize the present systems and methods and various embodiments withvarious modifications as may be suited to the particular usecontemplated.

Unless otherwise noted, the terms “a” or “an,” as used in thespecification and claims, are to be construed as meaning “at least oneof.” In addition, for ease of use, the words “including” and “having,”as used in the specification and claims, are interchangeable with andhave the same meaning as the word “comprising.” In addition, the term“based on” as used in the specification and the claims is to beconstrued as meaning “based at least upon.”

What is claimed is:
 1. A method for geo-location services, the methodcomprising: monitoring, at a control panel of an automation system, inconjunction with a sensor of the automation system, a location of aservice provider in relation to a predetermined location; receiving, atthe control panel, a request for a current status of the serviceprovider, wherein the current status comprises a current location of theservice provider and a current job-related status of the serviceprovider; determining, at the control panel, the current status of theservice provider; and generating, at the control panel, a notificationbased at least a part on the determining.
 2. The method of claim 1,further comprising: calculating an estimated time of arrival of theservice provider to the predetermined location based on any combinationof the current location of the service provider and the currentjob-related status of the service provider.
 3. The method of claim 1,wherein the current job-related status comprises at least one oftraveling to a job, on a job, on break, and off work.
 4. The method ofclaim 1, further comprising: pausing a channel from subscriber programcontent; and displaying the notification on at least a portion of thepaused channel.
 5. The method of claim 1, further comprising: learning aroute of the service provider in relation to the predetermined location.6. The method of claim 5, further comprising: upon learning the route ofthe service provider, calculating an estimated time of arrival of theservice provider to the predetermined location based on the currentlocation of the service provider in relation to the learned route. 7.The method of claim 5, further comprising: upon determining the serviceprovider is deviating from the learned route, generating a notification.8. The method of claim 1, further comprising: determining a number ofremaining appointments of the service provider before an appointment tothe predetermined location.
 9. The method of claim 8, furthercomprising: calculating an estimated time of arrival of the serviceprovider to the predetermined location based on the number of remainingappointments of the service provider.
 10. A computing device configuredfor geo-location services, comprising: a processor of a control panel ofan automation system; memory in electronic communication with theprocessor, wherein the memory stores computer executable instructionsthat when executed by the processor cause the processor to perform thesteps of: monitoring, in conjunction with a sensor of the automationsystem, a location of a service provider in relation to a predeterminedlocation; receiving a request for a current status of the serviceprovider, wherein the current status comprises a current location of theservice provider and a current job-related status of the serviceprovider; determining the current status of the service provider; andgenerating a notification based at least a part on the determining. 11.The computing device of claim 10, wherein the instructions executed bythe processor cause the processor to perform the steps of: calculatingan estimated time of arrival of the service provider to thepredetermined location based on any combination of the current locationof the service provider and the current job-related status of theservice provider.
 12. The computing device of claim 10, wherein thecurrent job-related status comprises at least one of traveling to a job,on a job, on break, and off work.
 13. The computing device of claim 10,wherein the instructions executed by the processor cause the processorto perform the steps of: pausing a channel from subscriber programcontent; and displaying the notification on at least a portion of thepaused channel.
 14. The computing device of claim 10, wherein theinstructions executed by the processor cause the processor to performthe steps of: learning a route of the service provider in relation tothe predetermined location.
 15. The computing device of claim 14,wherein the instructions executed by the processor cause the processorto perform the steps of: upon learning the route of the serviceprovider, calculating an estimated time of arrival of the serviceprovider to the predetermined location based on the current location ofthe service provider in relation to the learned route.
 16. The computingdevice of claim 14, wherein the instructions executed by the processorcause the processor to perform the steps of: upon determining theservice provider is deviating from the learned route, generating anotification.
 17. The computing device of claim 10, wherein theinstructions executed by the processor cause the processor to performthe steps of: determining a number of remaining appointments of theservice provider before an appointment to the predetermined location.18. The computing device of claim 17, wherein the instructions executedby the processor cause the processor to perform the steps of:calculating an estimated time of arrival of the service provider to thepredetermined location based on the number of remaining appointments ofthe service provider.
 19. A non-transitory computer-readable storagemedium storing computer executable instructions that when executed by aprocessor of an automation system cause the processor to perform thesteps of: monitoring, in conjunction with a sensor of the automationsystem, a location of a service provider in relation to a predeterminedlocation; receiving a request for a current status of the serviceprovider, wherein the current status comprises a current location of theservice provider and a current job-related status of the serviceprovider; determining the current status of the service provider; andgenerating a notification based at least a part on the determining. 20.The non-transitory computer readable storage medium of claim 19, whereinthe instructions executed by the processor cause the processor toperform the steps of: calculating an estimated time of arrival of theservice provider to the predetermined location based on any combinationof the current location of the service provider and the currentjob-related status of the service provider.